CS 111: Exam 1 info

Table of Contents

Notes sheet

You are permitted one 8.5 x 11 handwritten notes sheet (both sides) for use as a reference during the exam.

How to study

Lots of research has shown that reading over material is only a starting point for preparing for exams. It’s not sufficient. The critical thing to do is to practice. Reading how to swing a baseball bat or how to cross-country ski might give you some good ideas on how to get better the next time you try it, but it’s not even close to just getting out there and swinging a bat or skiing in the Arb.

How can you practice? One thing you can do is try the exercises at the end of each chapter, for which the solutions are available online. Practice these under test conditions and see how you do. You can also work again through all of the CodeCheck exercises, which are also likely great examples on how to practice.

Make sure to do all of your practicing on paper, not at a keyboard, so as to simulate the exam conditions.

Exam content

Listed below is the material that I have in mind that you should know for the exam. It’s what’s in my head when creating it. That said, this isn’t a contract. I may have inadvertently left something off this list that ends up on an exam question. I make no guarantees that the exam will be 100% limited to items listed below. Moreover, I may not be able to test all of this material given the time limitations of the exam. I may have to pick and choose some subset of it.

Exam format

The questions will vary, but might consist of things like:

  • multiple choice
  • fill in the blank
  • write portions of Python code to accomplish tasks
  • write a sentence or two explaining something
  • other possibilities, but hopefully you get the idea

Ultimately, the content that I will be drawing from for the exam is material that we have talked about in class, and material that you have used in CodeCheck labs on assignments, but also ideas that we have discussed in class. The textbook does have a variety of things mentioned in passing that are worth knowing, but if we haven’t discussed it in class and/or if it hasn’t been part of a lab or an assignment, I won’t test on it.

Learning goals

Students should be able to…

  • Write Python code to appropriately take input from the user and do something with it.
  • Write and evaluate assignment statements and expressions in Python.
  • Use definite loops to accomplish repeated tasks, including being able to total or accumulate results.
  • Use strings and lists as necessary to accomplish tasks.
  • Demonstrate understanding of how characters are ultimately represented, and show ability to use such knowledge for computational purposes (including ord and chr functions in Python). Demonstrate ability to process strings and substrings for producing desired results, including extracting portions of strings, changing case (upper/lower case), and manipulating to transform into different forms.
  • Be able to identify and use the remainder (modulo) operator as appropriate for cyclical calculations.
  • Define and distinguish among classes, objects, methods, variables, and parameters.
  • Write code to render graphics (shapes) based on user input and calculations. In other words, demonstrate the sorts of skills necessary to succeed on the graphics and cloud assignments. My goal is not to test detailed memorization of the graphics library, but rather the ability to use it to do interesting things. Students should already know how to make a graphics window appear, but I will provide copies of the documentation for the appropriate portions of the graphics.py documentation (currently linked on Moodle) that are relevant.